#!/usr/bin/env python
# coding: utf-8

# token生成器用途
# * url
# * passport
# * file name
# * -->'Afe2Ew8e', 'Be3mg6q'
# 
# 学习要点：
# * random # 标准库->内置函数：随机取值
# * string # 标准库->内置函数：字符串
# * 字符串与数字综合练习
# * 列表
# 

# In[20]:


import random
random.choice('q3we@r2$axc4nj5h7*')  # 从所给字符串序列中随机取值


# In[21]:


str_list = ['a','b','c','d','6','8']
s = ''
s.join(str_list)  # 将字符串列表里的参数，连接成一个字符串


# In[24]:


for i in range(5):
    s = random.choice('q3we@r2$axc4nj5h7*')
    print(s)


# In[25]:


import random
token = []
count = input("num:")
for i in range(int(count)):
    s = random.choice('q3we@r2$axc4nj5h7*')
    token.append(s)
''.join(token)


# In[29]:


import string
print(string.ascii_lowercase)
print(string.ascii_letters)  # 所有大小写的26个字母
print(string.ascii_uppercase)
print(string.digits)


# In[31]:


import random
import string
token = []
str_from = string.ascii_letters + string.digits  # 加入包括数字和大小写字母的字符串
count = input('位数:')
for i in range(int(count)):
    s = random.choice(str_from)
    token.append(s)
''.join(token)


# In[36]:


# 整合上面的代码，更简便，实用
import random
import string
str_from = string.ascii_letters + string.digits
count = input('位数:') 
random_list = [random.choice(str_from) for _ in range(int(count))]
# ***for _ in range***,将 x 替换成 _ ,表示此位置参数只起到占位作用，使代码结构完整
''.join(random_list)

